Certbot 2.x→3.xアップグレード時の落とし穴と対策メモ
東葛.dev Advent Calendar 2025(12日目)
でした。
ここから記事です。
業務でOS(Rocky Linux)更新をやる予定があり、Certbotもアップグレードされます。
証明書まわりはサーバの運用にとって重要なので、起こりうる不具合と対策を事前に調べようと思いました。
(まあ、単なるメモなんですが、気軽に記事を書けるようになったことは、今年の大きな収穫です。)
Certbotのバージョンは下記の通り。インストールはEPELからです。
更新前: 2.11.0
更新後: 3.1.0
EPEL(Extra Packages for Enterprise Linux)はFedoraプロジェクトが提供する、RHEL系向けの追加パッケージ集です。 Fedoraのビルド環境で作られたRPMを、RHEL互換の形で提供しています。
まず、パッケージの更新履歴を取得してみます。
code:bash
$ sudo dnf changelog certbot
Changelogs for certbot-3.1.0-1.el9.noarch
* Wed Mar 26 12:00:00 AM 2025 Jonathan Wright <jonathan@almalinux.org> - 3.1.0-1 - update to 3.1.0
* Fri Jan 03 12:00:00 AM 2025 Jonathan Wright <jonathan@almalinux.org> - 3.0.1-1 - update to 3.0.1-1 - update to 3.0.1 rhbz#2324360
2.11.0以降の履歴は3行です。
Fedora_42_Mass_Rebuild: Fedora42のリリースに向けて、全パッケージを再ビルドした、とあります。
code:text
Red Hat Bugzilla entry rhbz#2324360 addressed an issue related to the certbot package's build process.
Specifically, it provided a fix to ensure that certbot could successfully build with Python 3.12.0rc2 (and subsequent Python 3.12 versions), resolving compatibility problems that arose with the updated Python release. The fix was incorporated into certbot package version 3.3.0-1.fc42.
どうやら、Certbotのビルドに関係するバグだったようです。Python3.12以降でCertbotのビルドが失敗する問題を修正、バージョン3.3.0に取り込まれた、とあります。
Certbotのコマンドの使い方や動作に変更はないようですが、依存関係に問題があったということは、Certbotが依存しているPythonのライブラリを、互換性が保たれるように漏れなくアップデートする必要があります。
dnf check upgradeで、リストの確か半分くらいがPythonで埋まった理由がわかりました。ここは下手に考えようとせず、dnfにおまかせするのがベストプラクティスでしょう。
以上、結果的に「落とし穴」は大げさでしたが、不具合が起こるとすればむしろアップグレードが正常に終了した後ではなく、アップグレードのプロセスでではないかという気が急にしてきました。
なので、バックアップ、dry-run、ロールバックなどを含めて、しっかりとした手順書を作成して臨もうと思いました。
明日はサックさんが何か書きます。
東葛.devは、初学者からつよつよな方まで、言語を問わず、気軽に参加できる地域のエンジニアコミュニティです。
さらっと読める記事が多いので、ぜひアドカレを通して読んでみてください。きっと雰囲気が伝わると思います。